In order to test network devices, it is desirable to send application traffic to the network devices. For example, it may be desirable to emulate both client side applications and server side applications to test devices in the network that forward the application traffic between clients and servers. Application traffic may include any OSI layer 4-7 traffic, such as web browsing traffic, email traffic, different types of social networking traffic (e.g., Facebook® traffic, Twitter® traffic, or YouTube® traffic), different types of search engine traffic (e.g., Google® traffic or Yahoo® traffic), etc. Such traffic may traverse switches, routers, network address translators (NATs), firewalls, content aware devices, etc., when traveling from a client to a server or vice versa. In live networks, each server or bank of servers typically implements a single application. In such a case, it is not necessary for the server to parse the payload of the application traffic to identify whether the traffic is directed to its associated application. However, in a network test environment, a single network equipment test device may implement servers for plural different applications. As a result, in order to properly respond to communications from client applications, it is necessary for the network equipment test device to identify each application that is sending traffic to the network equipment test device so that the network equipment test device can respond appropriately to the applications.
One possible method of identifying the application at a network equipment test device where plural clients send a mix of application traffic to the device is to use the port on which the traffic is received to identify the application. For example, some applications, such as web servers, have a well-known transport layer port on which the servers listen for incoming connection requests. As a result, the destination port in a message from a client can be used to identify the application. However, many applications share the same transport layer port. For example, web browsing, search engines, and social networking traffic may all be addressed to the transport layer port designated for web traffic. Accordingly, the transport layer port cannot be used to properly identify the destination application when multiple applications listen on the same transport layer port.
Another possible solution to identifying application traffic at a network equipment test device is to use the source port and IP address to identify the application. However, if a network address translator is interposed between the client and the network equipment test device the network address translator may change the source port and IP address. Accordingly, the source port and IP address cannot be used to reliably identify the application in networks where network address translators are used.
Yet another possible solution to identifying the application at a network equipment test device is to insert application identifying information in the payload of the packet on the client side. However, inserting application identification information in the payload may not work when a content aware device is present in the network, because such nonstandard information inserted in the packet payload may not be recognized by the content aware device and may prevent the packet from being forwarded to the network equipment test device. Accordingly, there exists a long felt need for testing network devices using simulated traffic that avoids at least some of these difficulties.